package com.mgm.pojo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ClickInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ClickInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andAffidIsNull() {
            addCriterion("affid is null");
            return (Criteria) this;
        }

        public Criteria andAffidIsNotNull() {
            addCriterion("affid is not null");
            return (Criteria) this;
        }

        public Criteria andAffidEqualTo(String value) {
            addCriterion("affid =", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidNotEqualTo(String value) {
            addCriterion("affid <>", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidGreaterThan(String value) {
            addCriterion("affid >", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidGreaterThanOrEqualTo(String value) {
            addCriterion("affid >=", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidLessThan(String value) {
            addCriterion("affid <", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidLessThanOrEqualTo(String value) {
            addCriterion("affid <=", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidLike(String value) {
            addCriterion("affid like", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidNotLike(String value) {
            addCriterion("affid not like", value, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidIn(List<String> values) {
            addCriterion("affid in", values, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidNotIn(List<String> values) {
            addCriterion("affid not in", values, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidBetween(String value1, String value2) {
            addCriterion("affid between", value1, value2, "affid");
            return (Criteria) this;
        }

        public Criteria andAffidNotBetween(String value1, String value2) {
            addCriterion("affid not between", value1, value2, "affid");
            return (Criteria) this;
        }

        public Criteria andSubaffidIsNull() {
            addCriterion("subaffid is null");
            return (Criteria) this;
        }

        public Criteria andSubaffidIsNotNull() {
            addCriterion("subaffid is not null");
            return (Criteria) this;
        }

        public Criteria andSubaffidEqualTo(String value) {
            addCriterion("subaffid =", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidNotEqualTo(String value) {
            addCriterion("subaffid <>", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidGreaterThan(String value) {
            addCriterion("subaffid >", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidGreaterThanOrEqualTo(String value) {
            addCriterion("subaffid >=", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidLessThan(String value) {
            addCriterion("subaffid <", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidLessThanOrEqualTo(String value) {
            addCriterion("subaffid <=", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidLike(String value) {
            addCriterion("subaffid like", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidNotLike(String value) {
            addCriterion("subaffid not like", value, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidIn(List<String> values) {
            addCriterion("subaffid in", values, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidNotIn(List<String> values) {
            addCriterion("subaffid not in", values, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidBetween(String value1, String value2) {
            addCriterion("subaffid between", value1, value2, "subaffid");
            return (Criteria) this;
        }

        public Criteria andSubaffidNotBetween(String value1, String value2) {
            addCriterion("subaffid not between", value1, value2, "subaffid");
            return (Criteria) this;
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(String value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(String value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(String value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(String value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(String value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(String value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLike(String value) {
            addCriterion("tid like", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotLike(String value) {
            addCriterion("tid not like", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<String> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<String> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(String value1, String value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(String value1, String value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andAfftidIsNull() {
            addCriterion("afftid is null");
            return (Criteria) this;
        }

        public Criteria andAfftidIsNotNull() {
            addCriterion("afftid is not null");
            return (Criteria) this;
        }

        public Criteria andAfftidEqualTo(String value) {
            addCriterion("afftid =", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidNotEqualTo(String value) {
            addCriterion("afftid <>", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidGreaterThan(String value) {
            addCriterion("afftid >", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidGreaterThanOrEqualTo(String value) {
            addCriterion("afftid >=", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidLessThan(String value) {
            addCriterion("afftid <", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidLessThanOrEqualTo(String value) {
            addCriterion("afftid <=", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidLike(String value) {
            addCriterion("afftid like", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidNotLike(String value) {
            addCriterion("afftid not like", value, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidIn(List<String> values) {
            addCriterion("afftid in", values, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidNotIn(List<String> values) {
            addCriterion("afftid not in", values, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidBetween(String value1, String value2) {
            addCriterion("afftid between", value1, value2, "afftid");
            return (Criteria) this;
        }

        public Criteria andAfftidNotBetween(String value1, String value2) {
            addCriterion("afftid not between", value1, value2, "afftid");
            return (Criteria) this;
        }

        public Criteria andClickatIsNull() {
            addCriterion("clickAt is null");
            return (Criteria) this;
        }

        public Criteria andClickatIsNotNull() {
            addCriterion("clickAt is not null");
            return (Criteria) this;
        }

        public Criteria andClickatEqualTo(Date value) {
            addCriterion("clickAt =", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatNotEqualTo(Date value) {
            addCriterion("clickAt <>", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatGreaterThan(Date value) {
            addCriterion("clickAt >", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatGreaterThanOrEqualTo(Date value) {
            addCriterion("clickAt >=", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatLessThan(Date value) {
            addCriterion("clickAt <", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatLessThanOrEqualTo(Date value) {
            addCriterion("clickAt <=", value, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatIn(List<Date> values) {
            addCriterion("clickAt in", values, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatNotIn(List<Date> values) {
            addCriterion("clickAt not in", values, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatBetween(Date value1, Date value2) {
            addCriterion("clickAt between", value1, value2, "clickat");
            return (Criteria) this;
        }

        public Criteria andClickatNotBetween(Date value1, Date value2) {
            addCriterion("clickAt not between", value1, value2, "clickat");
            return (Criteria) this;
        }

        public Criteria andOfferidIsNull() {
            addCriterion("offerid is null");
            return (Criteria) this;
        }

        public Criteria andOfferidIsNotNull() {
            addCriterion("offerid is not null");
            return (Criteria) this;
        }

        public Criteria andOfferidEqualTo(String value) {
            addCriterion("offerid =", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotEqualTo(String value) {
            addCriterion("offerid <>", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidGreaterThan(String value) {
            addCriterion("offerid >", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidGreaterThanOrEqualTo(String value) {
            addCriterion("offerid >=", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLessThan(String value) {
            addCriterion("offerid <", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLessThanOrEqualTo(String value) {
            addCriterion("offerid <=", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLike(String value) {
            addCriterion("offerid like", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotLike(String value) {
            addCriterion("offerid not like", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidIn(List<String> values) {
            addCriterion("offerid in", values, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotIn(List<String> values) {
            addCriterion("offerid not in", values, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidBetween(String value1, String value2) {
            addCriterion("offerid between", value1, value2, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotBetween(String value1, String value2) {
            addCriterion("offerid not between", value1, value2, "offerid");
            return (Criteria) this;
        }

        public Criteria andOffernameIsNull() {
            addCriterion("offername is null");
            return (Criteria) this;
        }

        public Criteria andOffernameIsNotNull() {
            addCriterion("offername is not null");
            return (Criteria) this;
        }

        public Criteria andOffernameEqualTo(String value) {
            addCriterion("offername =", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameNotEqualTo(String value) {
            addCriterion("offername <>", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameGreaterThan(String value) {
            addCriterion("offername >", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameGreaterThanOrEqualTo(String value) {
            addCriterion("offername >=", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameLessThan(String value) {
            addCriterion("offername <", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameLessThanOrEqualTo(String value) {
            addCriterion("offername <=", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameLike(String value) {
            addCriterion("offername like", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameNotLike(String value) {
            addCriterion("offername not like", value, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameIn(List<String> values) {
            addCriterion("offername in", values, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameNotIn(List<String> values) {
            addCriterion("offername not in", values, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameBetween(String value1, String value2) {
            addCriterion("offername between", value1, value2, "offername");
            return (Criteria) this;
        }

        public Criteria andOffernameNotBetween(String value1, String value2) {
            addCriterion("offername not between", value1, value2, "offername");
            return (Criteria) this;
        }

        public Criteria andPayTypeIsNull() {
            addCriterion("pay_type is null");
            return (Criteria) this;
        }

        public Criteria andPayTypeIsNotNull() {
            addCriterion("pay_type is not null");
            return (Criteria) this;
        }

        public Criteria andPayTypeEqualTo(String value) {
            addCriterion("pay_type =", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotEqualTo(String value) {
            addCriterion("pay_type <>", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeGreaterThan(String value) {
            addCriterion("pay_type >", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeGreaterThanOrEqualTo(String value) {
            addCriterion("pay_type >=", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeLessThan(String value) {
            addCriterion("pay_type <", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeLessThanOrEqualTo(String value) {
            addCriterion("pay_type <=", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeLike(String value) {
            addCriterion("pay_type like", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotLike(String value) {
            addCriterion("pay_type not like", value, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeIn(List<String> values) {
            addCriterion("pay_type in", values, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotIn(List<String> values) {
            addCriterion("pay_type not in", values, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeBetween(String value1, String value2) {
            addCriterion("pay_type between", value1, value2, "payType");
            return (Criteria) this;
        }

        public Criteria andPayTypeNotBetween(String value1, String value2) {
            addCriterion("pay_type not between", value1, value2, "payType");
            return (Criteria) this;
        }

        public Criteria andPayPriceIsNull() {
            addCriterion("pay_price is null");
            return (Criteria) this;
        }

        public Criteria andPayPriceIsNotNull() {
            addCriterion("pay_price is not null");
            return (Criteria) this;
        }

        public Criteria andPayPriceEqualTo(BigDecimal value) {
            addCriterion("pay_price =", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceNotEqualTo(BigDecimal value) {
            addCriterion("pay_price <>", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceGreaterThan(BigDecimal value) {
            addCriterion("pay_price >", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("pay_price >=", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceLessThan(BigDecimal value) {
            addCriterion("pay_price <", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("pay_price <=", value, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceIn(List<BigDecimal> values) {
            addCriterion("pay_price in", values, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceNotIn(List<BigDecimal> values) {
            addCriterion("pay_price not in", values, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("pay_price between", value1, value2, "payPrice");
            return (Criteria) this;
        }

        public Criteria andPayPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("pay_price not between", value1, value2, "payPrice");
            return (Criteria) this;
        }

        public Criteria andAffPayoutIsNull() {
            addCriterion("aff_payout is null");
            return (Criteria) this;
        }

        public Criteria andAffPayoutIsNotNull() {
            addCriterion("aff_payout is not null");
            return (Criteria) this;
        }

        public Criteria andAffPayoutEqualTo(BigDecimal value) {
            addCriterion("aff_payout =", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutNotEqualTo(BigDecimal value) {
            addCriterion("aff_payout <>", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutGreaterThan(BigDecimal value) {
            addCriterion("aff_payout >", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("aff_payout >=", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutLessThan(BigDecimal value) {
            addCriterion("aff_payout <", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutLessThanOrEqualTo(BigDecimal value) {
            addCriterion("aff_payout <=", value, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutIn(List<BigDecimal> values) {
            addCriterion("aff_payout in", values, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutNotIn(List<BigDecimal> values) {
            addCriterion("aff_payout not in", values, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("aff_payout between", value1, value2, "affPayout");
            return (Criteria) this;
        }

        public Criteria andAffPayoutNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("aff_payout not between", value1, value2, "affPayout");
            return (Criteria) this;
        }

        public Criteria andPkgnameIsNull() {
            addCriterion("pkgname is null");
            return (Criteria) this;
        }

        public Criteria andPkgnameIsNotNull() {
            addCriterion("pkgname is not null");
            return (Criteria) this;
        }

        public Criteria andPkgnameEqualTo(String value) {
            addCriterion("pkgname =", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameNotEqualTo(String value) {
            addCriterion("pkgname <>", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameGreaterThan(String value) {
            addCriterion("pkgname >", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameGreaterThanOrEqualTo(String value) {
            addCriterion("pkgname >=", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameLessThan(String value) {
            addCriterion("pkgname <", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameLessThanOrEqualTo(String value) {
            addCriterion("pkgname <=", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameLike(String value) {
            addCriterion("pkgname like", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameNotLike(String value) {
            addCriterion("pkgname not like", value, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameIn(List<String> values) {
            addCriterion("pkgname in", values, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameNotIn(List<String> values) {
            addCriterion("pkgname not in", values, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameBetween(String value1, String value2) {
            addCriterion("pkgname between", value1, value2, "pkgname");
            return (Criteria) this;
        }

        public Criteria andPkgnameNotBetween(String value1, String value2) {
            addCriterion("pkgname not between", value1, value2, "pkgname");
            return (Criteria) this;
        }

        public Criteria andReferIsNull() {
            addCriterion("refer is null");
            return (Criteria) this;
        }

        public Criteria andReferIsNotNull() {
            addCriterion("refer is not null");
            return (Criteria) this;
        }

        public Criteria andReferEqualTo(String value) {
            addCriterion("refer =", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferNotEqualTo(String value) {
            addCriterion("refer <>", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferGreaterThan(String value) {
            addCriterion("refer >", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferGreaterThanOrEqualTo(String value) {
            addCriterion("refer >=", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferLessThan(String value) {
            addCriterion("refer <", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferLessThanOrEqualTo(String value) {
            addCriterion("refer <=", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferLike(String value) {
            addCriterion("refer like", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferNotLike(String value) {
            addCriterion("refer not like", value, "refer");
            return (Criteria) this;
        }

        public Criteria andReferIn(List<String> values) {
            addCriterion("refer in", values, "refer");
            return (Criteria) this;
        }

        public Criteria andReferNotIn(List<String> values) {
            addCriterion("refer not in", values, "refer");
            return (Criteria) this;
        }

        public Criteria andReferBetween(String value1, String value2) {
            addCriterion("refer between", value1, value2, "refer");
            return (Criteria) this;
        }

        public Criteria andReferNotBetween(String value1, String value2) {
            addCriterion("refer not between", value1, value2, "refer");
            return (Criteria) this;
        }

        public Criteria andIpIsNull() {
            addCriterion("ip is null");
            return (Criteria) this;
        }

        public Criteria andIpIsNotNull() {
            addCriterion("ip is not null");
            return (Criteria) this;
        }

        public Criteria andIpEqualTo(String value) {
            addCriterion("ip =", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpNotEqualTo(String value) {
            addCriterion("ip <>", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpGreaterThan(String value) {
            addCriterion("ip >", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpGreaterThanOrEqualTo(String value) {
            addCriterion("ip >=", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpLessThan(String value) {
            addCriterion("ip <", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpLessThanOrEqualTo(String value) {
            addCriterion("ip <=", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpLike(String value) {
            addCriterion("ip like", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpNotLike(String value) {
            addCriterion("ip not like", value, "ip");
            return (Criteria) this;
        }

        public Criteria andIpIn(List<String> values) {
            addCriterion("ip in", values, "ip");
            return (Criteria) this;
        }

        public Criteria andIpNotIn(List<String> values) {
            addCriterion("ip not in", values, "ip");
            return (Criteria) this;
        }

        public Criteria andIpBetween(String value1, String value2) {
            addCriterion("ip between", value1, value2, "ip");
            return (Criteria) this;
        }

        public Criteria andIpNotBetween(String value1, String value2) {
            addCriterion("ip not between", value1, value2, "ip");
            return (Criteria) this;
        }

        public Criteria andIdfaIsNull() {
            addCriterion("idfa is null");
            return (Criteria) this;
        }

        public Criteria andIdfaIsNotNull() {
            addCriterion("idfa is not null");
            return (Criteria) this;
        }

        public Criteria andIdfaEqualTo(String value) {
            addCriterion("idfa =", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaNotEqualTo(String value) {
            addCriterion("idfa <>", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaGreaterThan(String value) {
            addCriterion("idfa >", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaGreaterThanOrEqualTo(String value) {
            addCriterion("idfa >=", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaLessThan(String value) {
            addCriterion("idfa <", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaLessThanOrEqualTo(String value) {
            addCriterion("idfa <=", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaLike(String value) {
            addCriterion("idfa like", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaNotLike(String value) {
            addCriterion("idfa not like", value, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaIn(List<String> values) {
            addCriterion("idfa in", values, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaNotIn(List<String> values) {
            addCriterion("idfa not in", values, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaBetween(String value1, String value2) {
            addCriterion("idfa between", value1, value2, "idfa");
            return (Criteria) this;
        }

        public Criteria andIdfaNotBetween(String value1, String value2) {
            addCriterion("idfa not between", value1, value2, "idfa");
            return (Criteria) this;
        }

        public Criteria andGaidIsNull() {
            addCriterion("gaid is null");
            return (Criteria) this;
        }

        public Criteria andGaidIsNotNull() {
            addCriterion("gaid is not null");
            return (Criteria) this;
        }

        public Criteria andGaidEqualTo(String value) {
            addCriterion("gaid =", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidNotEqualTo(String value) {
            addCriterion("gaid <>", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidGreaterThan(String value) {
            addCriterion("gaid >", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidGreaterThanOrEqualTo(String value) {
            addCriterion("gaid >=", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidLessThan(String value) {
            addCriterion("gaid <", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidLessThanOrEqualTo(String value) {
            addCriterion("gaid <=", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidLike(String value) {
            addCriterion("gaid like", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidNotLike(String value) {
            addCriterion("gaid not like", value, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidIn(List<String> values) {
            addCriterion("gaid in", values, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidNotIn(List<String> values) {
            addCriterion("gaid not in", values, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidBetween(String value1, String value2) {
            addCriterion("gaid between", value1, value2, "gaid");
            return (Criteria) this;
        }

        public Criteria andGaidNotBetween(String value1, String value2) {
            addCriterion("gaid not between", value1, value2, "gaid");
            return (Criteria) this;
        }

        public Criteria andAidIsNull() {
            addCriterion("aid is null");
            return (Criteria) this;
        }

        public Criteria andAidIsNotNull() {
            addCriterion("aid is not null");
            return (Criteria) this;
        }

        public Criteria andAidEqualTo(String value) {
            addCriterion("aid =", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotEqualTo(String value) {
            addCriterion("aid <>", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidGreaterThan(String value) {
            addCriterion("aid >", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidGreaterThanOrEqualTo(String value) {
            addCriterion("aid >=", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidLessThan(String value) {
            addCriterion("aid <", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidLessThanOrEqualTo(String value) {
            addCriterion("aid <=", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidLike(String value) {
            addCriterion("aid like", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotLike(String value) {
            addCriterion("aid not like", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidIn(List<String> values) {
            addCriterion("aid in", values, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotIn(List<String> values) {
            addCriterion("aid not in", values, "aid");
            return (Criteria) this;
        }

        public Criteria andAidBetween(String value1, String value2) {
            addCriterion("aid between", value1, value2, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotBetween(String value1, String value2) {
            addCriterion("aid not between", value1, value2, "aid");
            return (Criteria) this;
        }

        public Criteria andUserAngentIsNull() {
            addCriterion("user_angent is null");
            return (Criteria) this;
        }

        public Criteria andUserAngentIsNotNull() {
            addCriterion("user_angent is not null");
            return (Criteria) this;
        }

        public Criteria andUserAngentEqualTo(String value) {
            addCriterion("user_angent =", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentNotEqualTo(String value) {
            addCriterion("user_angent <>", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentGreaterThan(String value) {
            addCriterion("user_angent >", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentGreaterThanOrEqualTo(String value) {
            addCriterion("user_angent >=", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentLessThan(String value) {
            addCriterion("user_angent <", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentLessThanOrEqualTo(String value) {
            addCriterion("user_angent <=", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentLike(String value) {
            addCriterion("user_angent like", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentNotLike(String value) {
            addCriterion("user_angent not like", value, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentIn(List<String> values) {
            addCriterion("user_angent in", values, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentNotIn(List<String> values) {
            addCriterion("user_angent not in", values, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentBetween(String value1, String value2) {
            addCriterion("user_angent between", value1, value2, "userAngent");
            return (Criteria) this;
        }

        public Criteria andUserAngentNotBetween(String value1, String value2) {
            addCriterion("user_angent not between", value1, value2, "userAngent");
            return (Criteria) this;
        }

        public Criteria andCodeIsNull() {
            addCriterion("code is null");
            return (Criteria) this;
        }

        public Criteria andCodeIsNotNull() {
            addCriterion("code is not null");
            return (Criteria) this;
        }

        public Criteria andCodeEqualTo(String value) {
            addCriterion("code =", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotEqualTo(String value) {
            addCriterion("code <>", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThan(String value) {
            addCriterion("code >", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThanOrEqualTo(String value) {
            addCriterion("code >=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThan(String value) {
            addCriterion("code <", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThanOrEqualTo(String value) {
            addCriterion("code <=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLike(String value) {
            addCriterion("code like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotLike(String value) {
            addCriterion("code not like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeIn(List<String> values) {
            addCriterion("code in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotIn(List<String> values) {
            addCriterion("code not in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeBetween(String value1, String value2) {
            addCriterion("code between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotBetween(String value1, String value2) {
            addCriterion("code not between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andReturnCodeIsNull() {
            addCriterion("return_code is null");
            return (Criteria) this;
        }

        public Criteria andReturnCodeIsNotNull() {
            addCriterion("return_code is not null");
            return (Criteria) this;
        }

        public Criteria andReturnCodeEqualTo(String value) {
            addCriterion("return_code =", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeNotEqualTo(String value) {
            addCriterion("return_code <>", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeGreaterThan(String value) {
            addCriterion("return_code >", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeGreaterThanOrEqualTo(String value) {
            addCriterion("return_code >=", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeLessThan(String value) {
            addCriterion("return_code <", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeLessThanOrEqualTo(String value) {
            addCriterion("return_code <=", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeLike(String value) {
            addCriterion("return_code like", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeNotLike(String value) {
            addCriterion("return_code not like", value, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeIn(List<String> values) {
            addCriterion("return_code in", values, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeNotIn(List<String> values) {
            addCriterion("return_code not in", values, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeBetween(String value1, String value2) {
            addCriterion("return_code between", value1, value2, "returnCode");
            return (Criteria) this;
        }

        public Criteria andReturnCodeNotBetween(String value1, String value2) {
            addCriterion("return_code not between", value1, value2, "returnCode");
            return (Criteria) this;
        }

        public Criteria andClickUrlIsNull() {
            addCriterion("click_url is null");
            return (Criteria) this;
        }

        public Criteria andClickUrlIsNotNull() {
            addCriterion("click_url is not null");
            return (Criteria) this;
        }

        public Criteria andClickUrlEqualTo(String value) {
            addCriterion("click_url =", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlNotEqualTo(String value) {
            addCriterion("click_url <>", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlGreaterThan(String value) {
            addCriterion("click_url >", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlGreaterThanOrEqualTo(String value) {
            addCriterion("click_url >=", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlLessThan(String value) {
            addCriterion("click_url <", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlLessThanOrEqualTo(String value) {
            addCriterion("click_url <=", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlLike(String value) {
            addCriterion("click_url like", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlNotLike(String value) {
            addCriterion("click_url not like", value, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlIn(List<String> values) {
            addCriterion("click_url in", values, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlNotIn(List<String> values) {
            addCriterion("click_url not in", values, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlBetween(String value1, String value2) {
            addCriterion("click_url between", value1, value2, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andClickUrlNotBetween(String value1, String value2) {
            addCriterion("click_url not between", value1, value2, "clickUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlIsNull() {
            addCriterion("redirect_url is null");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlIsNotNull() {
            addCriterion("redirect_url is not null");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlEqualTo(String value) {
            addCriterion("redirect_url =", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlNotEqualTo(String value) {
            addCriterion("redirect_url <>", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlGreaterThan(String value) {
            addCriterion("redirect_url >", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlGreaterThanOrEqualTo(String value) {
            addCriterion("redirect_url >=", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlLessThan(String value) {
            addCriterion("redirect_url <", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlLessThanOrEqualTo(String value) {
            addCriterion("redirect_url <=", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlLike(String value) {
            addCriterion("redirect_url like", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlNotLike(String value) {
            addCriterion("redirect_url not like", value, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlIn(List<String> values) {
            addCriterion("redirect_url in", values, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlNotIn(List<String> values) {
            addCriterion("redirect_url not in", values, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlBetween(String value1, String value2) {
            addCriterion("redirect_url between", value1, value2, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andRedirectUrlNotBetween(String value1, String value2) {
            addCriterion("redirect_url not between", value1, value2, "redirectUrl");
            return (Criteria) this;
        }

        public Criteria andP1IsNull() {
            addCriterion("p1 is null");
            return (Criteria) this;
        }

        public Criteria andP1IsNotNull() {
            addCriterion("p1 is not null");
            return (Criteria) this;
        }

        public Criteria andP1EqualTo(String value) {
            addCriterion("p1 =", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1NotEqualTo(String value) {
            addCriterion("p1 <>", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1GreaterThan(String value) {
            addCriterion("p1 >", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1GreaterThanOrEqualTo(String value) {
            addCriterion("p1 >=", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1LessThan(String value) {
            addCriterion("p1 <", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1LessThanOrEqualTo(String value) {
            addCriterion("p1 <=", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1Like(String value) {
            addCriterion("p1 like", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1NotLike(String value) {
            addCriterion("p1 not like", value, "p1");
            return (Criteria) this;
        }

        public Criteria andP1In(List<String> values) {
            addCriterion("p1 in", values, "p1");
            return (Criteria) this;
        }

        public Criteria andP1NotIn(List<String> values) {
            addCriterion("p1 not in", values, "p1");
            return (Criteria) this;
        }

        public Criteria andP1Between(String value1, String value2) {
            addCriterion("p1 between", value1, value2, "p1");
            return (Criteria) this;
        }

        public Criteria andP1NotBetween(String value1, String value2) {
            addCriterion("p1 not between", value1, value2, "p1");
            return (Criteria) this;
        }

        public Criteria andP2IsNull() {
            addCriterion("p2 is null");
            return (Criteria) this;
        }

        public Criteria andP2IsNotNull() {
            addCriterion("p2 is not null");
            return (Criteria) this;
        }

        public Criteria andP2EqualTo(String value) {
            addCriterion("p2 =", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2NotEqualTo(String value) {
            addCriterion("p2 <>", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2GreaterThan(String value) {
            addCriterion("p2 >", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2GreaterThanOrEqualTo(String value) {
            addCriterion("p2 >=", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2LessThan(String value) {
            addCriterion("p2 <", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2LessThanOrEqualTo(String value) {
            addCriterion("p2 <=", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2Like(String value) {
            addCriterion("p2 like", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2NotLike(String value) {
            addCriterion("p2 not like", value, "p2");
            return (Criteria) this;
        }

        public Criteria andP2In(List<String> values) {
            addCriterion("p2 in", values, "p2");
            return (Criteria) this;
        }

        public Criteria andP2NotIn(List<String> values) {
            addCriterion("p2 not in", values, "p2");
            return (Criteria) this;
        }

        public Criteria andP2Between(String value1, String value2) {
            addCriterion("p2 between", value1, value2, "p2");
            return (Criteria) this;
        }

        public Criteria andP2NotBetween(String value1, String value2) {
            addCriterion("p2 not between", value1, value2, "p2");
            return (Criteria) this;
        }

        public Criteria andP3IsNull() {
            addCriterion("p3 is null");
            return (Criteria) this;
        }

        public Criteria andP3IsNotNull() {
            addCriterion("p3 is not null");
            return (Criteria) this;
        }

        public Criteria andP3EqualTo(String value) {
            addCriterion("p3 =", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3NotEqualTo(String value) {
            addCriterion("p3 <>", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3GreaterThan(String value) {
            addCriterion("p3 >", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3GreaterThanOrEqualTo(String value) {
            addCriterion("p3 >=", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3LessThan(String value) {
            addCriterion("p3 <", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3LessThanOrEqualTo(String value) {
            addCriterion("p3 <=", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3Like(String value) {
            addCriterion("p3 like", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3NotLike(String value) {
            addCriterion("p3 not like", value, "p3");
            return (Criteria) this;
        }

        public Criteria andP3In(List<String> values) {
            addCriterion("p3 in", values, "p3");
            return (Criteria) this;
        }

        public Criteria andP3NotIn(List<String> values) {
            addCriterion("p3 not in", values, "p3");
            return (Criteria) this;
        }

        public Criteria andP3Between(String value1, String value2) {
            addCriterion("p3 between", value1, value2, "p3");
            return (Criteria) this;
        }

        public Criteria andP3NotBetween(String value1, String value2) {
            addCriterion("p3 not between", value1, value2, "p3");
            return (Criteria) this;
        }

        public Criteria andP4IsNull() {
            addCriterion("p4 is null");
            return (Criteria) this;
        }

        public Criteria andP4IsNotNull() {
            addCriterion("p4 is not null");
            return (Criteria) this;
        }

        public Criteria andP4EqualTo(String value) {
            addCriterion("p4 =", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4NotEqualTo(String value) {
            addCriterion("p4 <>", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4GreaterThan(String value) {
            addCriterion("p4 >", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4GreaterThanOrEqualTo(String value) {
            addCriterion("p4 >=", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4LessThan(String value) {
            addCriterion("p4 <", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4LessThanOrEqualTo(String value) {
            addCriterion("p4 <=", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4Like(String value) {
            addCriterion("p4 like", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4NotLike(String value) {
            addCriterion("p4 not like", value, "p4");
            return (Criteria) this;
        }

        public Criteria andP4In(List<String> values) {
            addCriterion("p4 in", values, "p4");
            return (Criteria) this;
        }

        public Criteria andP4NotIn(List<String> values) {
            addCriterion("p4 not in", values, "p4");
            return (Criteria) this;
        }

        public Criteria andP4Between(String value1, String value2) {
            addCriterion("p4 between", value1, value2, "p4");
            return (Criteria) this;
        }

        public Criteria andP4NotBetween(String value1, String value2) {
            addCriterion("p4 not between", value1, value2, "p4");
            return (Criteria) this;
        }

        public Criteria andD1IsNull() {
            addCriterion("d1 is null");
            return (Criteria) this;
        }

        public Criteria andD1IsNotNull() {
            addCriterion("d1 is not null");
            return (Criteria) this;
        }

        public Criteria andD1EqualTo(String value) {
            addCriterion("d1 =", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1NotEqualTo(String value) {
            addCriterion("d1 <>", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1GreaterThan(String value) {
            addCriterion("d1 >", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1GreaterThanOrEqualTo(String value) {
            addCriterion("d1 >=", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1LessThan(String value) {
            addCriterion("d1 <", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1LessThanOrEqualTo(String value) {
            addCriterion("d1 <=", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1Like(String value) {
            addCriterion("d1 like", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1NotLike(String value) {
            addCriterion("d1 not like", value, "d1");
            return (Criteria) this;
        }

        public Criteria andD1In(List<String> values) {
            addCriterion("d1 in", values, "d1");
            return (Criteria) this;
        }

        public Criteria andD1NotIn(List<String> values) {
            addCriterion("d1 not in", values, "d1");
            return (Criteria) this;
        }

        public Criteria andD1Between(String value1, String value2) {
            addCriterion("d1 between", value1, value2, "d1");
            return (Criteria) this;
        }

        public Criteria andD1NotBetween(String value1, String value2) {
            addCriterion("d1 not between", value1, value2, "d1");
            return (Criteria) this;
        }

        public Criteria andD2IsNull() {
            addCriterion("d2 is null");
            return (Criteria) this;
        }

        public Criteria andD2IsNotNull() {
            addCriterion("d2 is not null");
            return (Criteria) this;
        }

        public Criteria andD2EqualTo(String value) {
            addCriterion("d2 =", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2NotEqualTo(String value) {
            addCriterion("d2 <>", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2GreaterThan(String value) {
            addCriterion("d2 >", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2GreaterThanOrEqualTo(String value) {
            addCriterion("d2 >=", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2LessThan(String value) {
            addCriterion("d2 <", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2LessThanOrEqualTo(String value) {
            addCriterion("d2 <=", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2Like(String value) {
            addCriterion("d2 like", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2NotLike(String value) {
            addCriterion("d2 not like", value, "d2");
            return (Criteria) this;
        }

        public Criteria andD2In(List<String> values) {
            addCriterion("d2 in", values, "d2");
            return (Criteria) this;
        }

        public Criteria andD2NotIn(List<String> values) {
            addCriterion("d2 not in", values, "d2");
            return (Criteria) this;
        }

        public Criteria andD2Between(String value1, String value2) {
            addCriterion("d2 between", value1, value2, "d2");
            return (Criteria) this;
        }

        public Criteria andD2NotBetween(String value1, String value2) {
            addCriterion("d2 not between", value1, value2, "d2");
            return (Criteria) this;
        }

        public Criteria andD3IsNull() {
            addCriterion("d3 is null");
            return (Criteria) this;
        }

        public Criteria andD3IsNotNull() {
            addCriterion("d3 is not null");
            return (Criteria) this;
        }

        public Criteria andD3EqualTo(String value) {
            addCriterion("d3 =", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3NotEqualTo(String value) {
            addCriterion("d3 <>", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3GreaterThan(String value) {
            addCriterion("d3 >", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3GreaterThanOrEqualTo(String value) {
            addCriterion("d3 >=", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3LessThan(String value) {
            addCriterion("d3 <", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3LessThanOrEqualTo(String value) {
            addCriterion("d3 <=", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3Like(String value) {
            addCriterion("d3 like", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3NotLike(String value) {
            addCriterion("d3 not like", value, "d3");
            return (Criteria) this;
        }

        public Criteria andD3In(List<String> values) {
            addCriterion("d3 in", values, "d3");
            return (Criteria) this;
        }

        public Criteria andD3NotIn(List<String> values) {
            addCriterion("d3 not in", values, "d3");
            return (Criteria) this;
        }

        public Criteria andD3Between(String value1, String value2) {
            addCriterion("d3 between", value1, value2, "d3");
            return (Criteria) this;
        }

        public Criteria andD3NotBetween(String value1, String value2) {
            addCriterion("d3 not between", value1, value2, "d3");
            return (Criteria) this;
        }

        public Criteria andD4IsNull() {
            addCriterion("d4 is null");
            return (Criteria) this;
        }

        public Criteria andD4IsNotNull() {
            addCriterion("d4 is not null");
            return (Criteria) this;
        }

        public Criteria andD4EqualTo(String value) {
            addCriterion("d4 =", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4NotEqualTo(String value) {
            addCriterion("d4 <>", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4GreaterThan(String value) {
            addCriterion("d4 >", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4GreaterThanOrEqualTo(String value) {
            addCriterion("d4 >=", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4LessThan(String value) {
            addCriterion("d4 <", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4LessThanOrEqualTo(String value) {
            addCriterion("d4 <=", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4Like(String value) {
            addCriterion("d4 like", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4NotLike(String value) {
            addCriterion("d4 not like", value, "d4");
            return (Criteria) this;
        }

        public Criteria andD4In(List<String> values) {
            addCriterion("d4 in", values, "d4");
            return (Criteria) this;
        }

        public Criteria andD4NotIn(List<String> values) {
            addCriterion("d4 not in", values, "d4");
            return (Criteria) this;
        }

        public Criteria andD4Between(String value1, String value2) {
            addCriterion("d4 between", value1, value2, "d4");
            return (Criteria) this;
        }

        public Criteria andD4NotBetween(String value1, String value2) {
            addCriterion("d4 not between", value1, value2, "d4");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}